Postmortem NYPP Mars 2025

Author

Zineddine Aliche

Published

October 17, 2025

đŸ› ïž Points Ă  discuter et Projets

  • Nouveau projet de changement de la topologie.
Code
# Import necessary libraries
from services import snowflake_queries as sq
from components import graph_utils as gu, constraint_utils as cu
import plotly.graph_objects as go
from services.database_connection import init_connection
from itables import show, JavascriptFunction
import ipywidgets as widgets

conn=init_connection()

📈 Evolution de la load et du vents

  • La load en monthly est gĂ©nĂ©ralement bien estimĂ©e au milieu du mois et un peu surestimĂ©e en fin de mois
  • Le vent est gĂ©nĂ©ralement sous-estimĂ©e en monthly.
Code
df_Load=sq.get_Load(['NYPP_1DA_Default', 'NYPP_1MA_Default', 'NYPP_1MA_LoadMin','NYPP_1MA_LoadMax']
                  ,'2020-01-01'
                  ,'2025-03-31'
                  ,conn
                  )
df_Wind=sq.get_Wind(['NYPP_1DA_Default','NYPP_1MA_Default','NYPP_1MA_WindMin','NYPP_1MA_WindMax']
                  ,'2020-01-01'
                  ,'2025-03-31'
                  ,conn
                  )

gu.create_graph_load(df_Load,'TOTAL','2025-03-01','2025-03-31')
gu.create_graph_wind(df_Wind,'2025-03-01','2025-03-31')

𝄜 Top contraintes du mois

Code
df_PM=sq.get_PostMortem(1
                        ,'2025-03-01'
                        ,'2025-03-31'
                        ,['NYPP_1MA_Default', 'NYPP_1MA_AvgHistSP', 'NYPP_1MA_DL_AvgSP']
                        ,conn)

df_PM.fillna(0,inplace=True)
exclude_columns = ["CID_MAG", "CID_CES", "CONSTRAINTNAME","CONTINGENCYNAME"]

# Apply formatting to all other columns
for col in df_PM.columns:
    if col not in exclude_columns:
        df_PM[col] = df_PM[col].apply(lambda x: f"${x:,}")

# Apply formatting to all other numeric columns


show(df_PM,
    classes="compact",
    column_filters="header", 
    layout={"topEnd": None}, 
    style="font-size: 12px;",
    )
Loading ITables v2.5.2 from the internet... (need help?)

đŸ•”ïž Analyses des contraintes

Code
# paramÚtres généraux
pool_id=1
ftrstartdate='2025-03-01'
ftrenddate='2025-03-31'
histostartdate='2025-03-01'
histoenddate='2025-03-31'
scenario_flows=['NYPP_1MA_Default','NYPP_1DA_Default','NYPP_1MA_AvgHistSP', 'NYPP_1MA_DL_AvgtSP' ]
scenario_first_priority='NYPP_1DA_Default'
scenario_sf=['NYPP_1MA_Default','NYPP_1DA_Default']
scenario_histo_sp=['NYPP_1MA_Default','NYPP_1DA_Default',
                    'NYPP_1MA_AvgHistSP',
                    'NYPP_1MA_DL_AvgtSP'
                    ]
311100 GREENWD 138 VERNON 138 1 GOETHALS-FRESHKLS_345_22_25337

Analyse :

  • CaptĂ©e uniquement par le 1DA_LD, oĂč la limite a baissĂ© de 259MW Ă  50MW.
  • L’outage 25475 (GOWANUS 345KV - GOWANUS138 KV) a Ă©tĂ© manquĂ©es en monthly (un outage qui redirige environ 29MW sur la ligne).
  • Selon Dayzer, c’est une contrainte drivĂ©e par la load dans NYC et soulagĂ©e principalement par l’unitĂ© Arthur Kill ST 2, l’outage 25476 (GOWANUSN 345KV - GOWANUSN 138KV) met aussi environ 30MW de pression sur la ligne.
Loading ITables v2.5.2 from the internet... (need help?)
310811 BUCHAN_N 345 BUCHAN_N 138 1 LADENTWN-BUCHAN_S_345_Y88_25425

Analyse :

  • Contrainte mal mappĂ©e : la contrainte qui a bindĂ© au marchĂ© est BUCHAN_N 345 BUCHAN_N 138 1:LOVETT_-BUCHAN_S_345_Y88(25425). Dans notre mapping, on l’a associĂ©e Ă  la contrainte BUCHAN_N 345 BUCHAN_N 138 1 LADENTWN-BUCHAN_S_345_Y88_25425. J’ai vĂ©rifiĂ© dans les fichiers de contingence du marchĂ©, et cette contingence (qui est une line) n’existe pas dans Dayzer. Je vais l’ajouter dans le modĂšle et corriger la table de mapping avant de lancer le prochain round des annuelles.
  • Pour la contrainte BUCHAN_N 345 BUCHAN_N 138 1 LADENTWN-BUCHAN_S_345_Y88_25425, la ligne principale Ă©tait prĂ©vue en outage en monthly entre le 3 et le 8 mars 2025, mais l’outage a finalement Ă©tĂ© dĂ©placĂ© du 6 au 10 mars en daily. Cette contrainte n’a pas bindĂ© au marchĂ©.
  • La contrainte est principalement impactĂ©e par la load dans NYC et LI, et soulagĂ©e par les gĂ©nĂ©ratrices non renouvelables.
Loading ITables v2.5.2 from the internet... (need help?)
310863 CODINGTN 115 MONTRFL 115 1 SCB:OAKDALE(31/B322):31&BK3_25728

Analyse :

  • Contrainte bien captĂ©e par les scĂ©narions 1DA et par quelques scĂ©narios 1MA.
  • Les flows sont gĂ©nĂ©ralement trĂšs proche de la limite, mais la contrainte ne bind pas en monthly dans Dayzer
  • Selon Dayzer, les Imports/Exports vers PJM sont le premier facteur qui met de la pression sur la contrainte.
Loading ITables v2.5.2 from the internet... (need help?)